home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 22 / AACD 22.iso / AACD / Programming / RxMUI / Examples / ownarexx.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  2001-05-24  |  3.2 KB  |  99 lines

  1. /* OwnARexx */
  2.  
  3. signal on halt
  4. signal on break_c
  5. call init
  6. call CreateApp
  7. call HandleApp
  8. /* never reached */
  9. /***********************************************************************/
  10. init: procedure expose global.
  11.     l="rmh.library";if ~show("L",l) then;if ~addlib(l,0,-30) then exit
  12.     if AddLibrary("rxmui.library")~=0 then exit
  13.  
  14.     global.url.0.url="http://www.amiga.org";                    global.url.0.name="Amiga org"
  15.     global.url.1.url="http://www.napster.com";                  global.url.1.name="Napster"
  16.     global.url.2.url="http://web.tiscalinet.it/amiga/rxmui";    global.url.2.name="RxMUI"
  17.     global.url.3.url="http://ftp.unina.it/~aminet/";            global.url.3.name="Aminet"
  18.     global.url.max=4
  19.  
  20.     return
  21. /***********************************************************************/
  22. HandleApp: procedure expose global.
  23.     call getattr("app","base","PORTNAME")
  24.     ps=PortSignal(portname)
  25.     ctrl_c=2**12
  26.     do forever
  27.         call NewHandle("APP","H",or(ctrl_c,ps))
  28.         if and(h.signals,ctrl_c)~=0 then exit
  29.         if and(h.signals,ps)>0 then call HandlePort(portname)
  30.         select
  31.             when h.event="QUIT" then exit
  32.             when h.event="DROPEVENT" then call DropFun(h.from,h.to)
  33.             when left(h.event,1)="B" then do
  34.                 parse var h.event "B" b
  35.                 say global.url.b.url global.url.b.name
  36.             end
  37.             otherwise nop
  38.         end
  39.     end
  40.     /* never reached */
  41. /***********************************************************************/
  42. err: procedure expose sigl RxMUIError
  43. parse arg res
  44.     msg = ProgramName()":" GetRxMUIString(res) "in line" sigl-1
  45.     if RxMUIError~="RXMUIERROR" then msg = msg "["RxMUIError"]"
  46.     say msg
  47.     exit
  48. /***********************************************************************/
  49. CreateApp: procedure expose global.
  50.     app.Title="OwnARexxExample"
  51.     app.Version="$VER: OwnARexxExample 2.0 (12.10.2000)"
  52.     app.Copyright="©2000, alfie"
  53.     app.Author="alfie"
  54.     app.Description="OwnARexxExample"
  55.     app.Base="RXMUIEXAMPLE"
  56.     app.OwnARexx=1
  57.     app.SubWindow="win"
  58.      win.Title="OwnARexxExample"
  59.      win.Contents="mgroup"
  60.       mgroup.frametitle="Messages received"
  61.       mgroup.0="msglist"
  62.        msglist.class="listview"
  63.        msglist.input=1
  64.        msglist.frame="inputlist"
  65.        msglist.list="list"
  66.  
  67.     res=NewObj("APPLICATION","APP")
  68.     if res~=0 then call err(res)
  69.  
  70.     call Notify("win","closerequest",1,"app","returnid","quit")
  71.     call Notify("msglist","entries","everytime","msglist","jump","triggervalue")
  72.  
  73.     call set("win","open",1)
  74.     call getattr("win","open","o")
  75.     if o=0 then do
  76.         say "can't open window"
  77.         exit
  78.     end
  79.  
  80.     return
  81. /***********************************************************************/
  82. halt:
  83. break_c:
  84.     exit
  85. /**************************************************************************/
  86. HandlePort: procedure
  87. parse arg portname
  88.     pkt=Getpkt(portname)
  89.     do while pkt~=null()
  90.         msg=getarg(pkt)
  91.         call DoMethod(msglist,"insert",msg,"bottom")
  92.         call DoMethod("app","inputbuffered")
  93.         call Reply(pkt)
  94.         if upper(msg)="QUIT" then exit
  95.         pkt=Getpkt(portname)
  96.     end
  97.     return
  98. /**************************************************************************/
  99.